Position teaching method for a robot

ABSTRACT

A robot teaching position method for easily modifying an original position of one of a plurality of taught points arranged on a straight line to a modified position moved a distance along the straight line from the original position. An operator selects one of the plurality of taught points, inputs a distance of movement along the straight line from the one taught point to the modified point, and selects two arbitrary taught points arranged on the straight line, using a display device attached to a manual data input device attached to a robot controller. The modified position is determined based on the inputted first taught point, the distance, and the second and third taught points. A robot performs an operation based on the modified position.

FIELD OF THE INVENTION

The present invention relates to a position teaching method applicableto robots for industrial and other uses, which operate according to ataught program, and, more particularly to a position teaching method forrobots applicable when modifying the position which has already beentaught (taught position).

DESCRIPTION OF THE RELATED ART

When a robot for industrial or other use (hereinafter simply called arobot), which operates according to a taught program, is used to performvarious operations, the need for changing the position taught by aprogram arises frequently.

In changing the taught position, one of the generally practiced methodsis to move the robot actually to the modified position (that is, thetaught position to be realized after the modification has been made) bymanual feeding or with other means to store the position, or to inputthe data of modified position directly. However, when the amount of themodification is known in advance, it is popular for the operator toinput the amount of position modification for changing the taughtposition.

As a typical example of modifying the taught position, there is a casewhere only the taught position is changing without changing thedirection between taught positions in the program already taught beforeperforming the actual operation.

For example, in the case where position teaching has been performed fora robot in a form of program teaching to perform operations such asgrasping, carrying, or arc welding on a plurality of workpieces of apredetermined size L arranged linearly at predetermined intervals D,when the predetermined interval D or the predetermined size L ischanged, it is apparently inefficient to perform teaching by manualfeeding or re-preparation of the entire program. Thus, it is preferablefor the operator to input the taught position modification data.

Conventionally, in such a case as is described above, the operator hadto perform preparatory work to specify the position modification datarepresented on the same coordinate system as that on which the alreadytaught position data are based or the data which can be converted intothe position change data in the robot controller (the positionmodification data represented on the coordinate system which has beenset in advance for the robot or on the reference coordinate system).

As described above, to input the taught position modification data bythe conventional method, preparatory work is required to specify theposition modification data represented on the coordinate system set inadvance for the robot or on the reference coordinate system. However, itis not always easy for the operator to perform such preparatory workquickly and accurately, because the operators are not necessarilyfamiliar with these coordinate systems in many instances.

Even if the operator is familiar with these coordinate systems, theactual position change is not always in parallel to the direction ofeither axis of these coordinate systems (direction of X-, Y- or Z-axisof the orthogonal coordinates, or direction of r, θ, or φ of the polarcoordinates). Therefore, the change data for each axis component (Xcomponent, θ component, etc.) must be determined. In the case of theoperation on the aforementioned workpieces arranged linearly, forexample, the direction of the position change along the arrangementdirection or the size change direction is not always exactly in parallelto one axis of the coordinate system set for the robot or the referencecoordinate system.

It is therefore necessary in general to find the data corresponding tothe cosine of direction of the vector, which is directed from theposition before modification toward the position after modification andrepresented on the concerned coordinate system, and to calculate thecomponent of the amount of modification based on such data. Such work iscomplicated, and sometimes extra measurement work (for example, themeasurement in the workpiece arrangement direction, or the measurementin the size change direction) will have to be added for this purpose.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a position teachingmethod for a robot designed to reduce the aforementioned loads on theoperator in performing the taught position.modification such that anytaught position is changed along the direction between any taughtpositions in a program, and the taught position can be modified veryeasily without involving cumbersome procedure such as the identificationof coordinate system and the conversion of position modification data(calculation of component).

To achieve the above object according to the present invention where theposition of any taught point, out of a plurality of taught points taughtin a program so as to be arranged on one straight line in space, is tobe modified by moving the taught point a distance along the straightline, the modified position of the taught point to be modified isdetermined based on the position information before modification, thedistance of movement along the aforementioned straight line, and theposition information of two arbitrary taught points located on theaforesaid straight line.

Preferably, according to the present invention, where the position ofany taught point, out of a plurality of taught points in a programtaught so as to be arranged on one straight line in space, is to bemodified by moving the taught point a distance along the straight line,the modified position of the taught point to be modified is determinedas a position vector based on the position vector before modification,the distance of movement along the aforementioned straight line, and therespective position vectors of two arbitrary taught points located onthe aforementioned straight line.

Preferably, where the position vector before modification of the taughtpoint to be modified is taken as <OP_(s) >, the distance of movementalong the aforementioned straight line as δs, and the position vectorsfor two arbitrary taught points located on the aforementioned straightline as <D_(j) > and <D_(i) >, respectively, the modified positionvector <OQ_(s) > of the taught point to be modified is determined fromthe following equation:

    <OQ.sub.s >=<OP.sub.s >+(δ.sub.s /d.sub.ij)<D.sub.ij >

where,

    <D.sub.ij >=<D.sub.j >-<D.sub.i >

    d.sub.ij =|<D.sub.ij >|

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a view for illustrating the principle on which the taughtposition is modified by the position teaching method of the presentinvention;

FIG. 2 is a block diagram of the principal part of a robot controllerused in carrying out the position teaching method of the presentinvention;

FIGS. 3(a) and 3(b) are views showing the relationship between theoriginally taught position and modified taught position in performingthe work on two types of workpieces that have different sizes;

FIG. 4 is a view of the taught position data change input mode shown ona display attached to a manual data input device; and

FIG. 5 is a flowchart showing an example of processing for modifying thetaught position for the case indicated in FIG. 3.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 schematically shows the relationship between the robot movementlocus including the taught position before modification (the positionalready taught) and the robot movement locus including the taughtposition after modification (the position to be taught newly) toillustrate the principle of the present invention.

In FIG. 1, each taught position is defined by an XYZ-axes orthogonalcoordinate system Σ with the origin O being its center. This coordinatesystem Σ is normally a base coordinate system or a world coordinatesystem.

In this FIG. 1, the path of the taught positions already taught coversP₀ →P₁ →P₂ → . . . . →P_(k) →P_(k+1) →P_(k+2) →P_(k+3) →P_(k+4) → . . .. P_(n-1) →P_(n). (=P₀). Of these taught positions, the taught positionsP_(k+1), P_(k+2) and P_(k+3) are considered to be located on onestraight line as shown in FIG. 1. Hereinafter, the interval connectingthese positions P_(k+1), P_(k+2) and P_(k+3) is called the linearinterval (before modification).

Now, let us consider the correction in which the taught positionsP_(k+1), P_(k+2) and P_(k+3) are respectively shifted by δ_(k+1),δ_(k+2) and δ_(k+3), on one straight line that connects these taughtpositions. For these shift amounts, a plus symbol is applied where theshift takes place in the order of the position P_(k+1), P_(k+2) andP_(k+3), while a minus symbol is applied where the shift takes place inthe reverse order. The positions shifted from the taught positions byP_(k+1), P_(k+2) and P_(k+3) are referred to as Q_(k+1), Q_(k+2) andQ_(k+3), respectively. As a result, the path of the taught positionsafter modification is indicated by P₀ →P₁ →P₂ → . . . . →P_(k) →Q_(k+1)→Q_(k+2) →Q_(k+3) →P_(k+4) → . . . . P_(n+1) →P_(n) (=P₀). Of thesetaught positions, the positions Q_(k+1), Q_(k+2) and Q_(k+3) are locatedon one straight line (that is, on one straight line connecting thepositions P_(k+1), P_(k+2) and P_(k+3)).

For the linear interval before modification, the vector directed fromthe taught position P_(k+1) to P_(k+2) and the vector directed from thetaught position P_(k+2) to P_(k+3) are referred to as <D_(k+1) >and<P_(k+2) >, respectively. Further, the vector directed from the positionP_(k+1) to the modified position Q_(k+1), the vector directed from theposition P_(k+2) to the modified position Q_(k+2), and the vectordirected from the position P_(k+3) to the modified position Q_(k+3) arereferred to as <Δ_(k+1) >, <Δ_(k+2) > and <Δ_(k+3) >, respectively(hereinafter, these three vectors are referred to as modifying vectors).All of these vectors <D_(k+1) >, <D_(k+2) >, <Δ_(k+1) >, <Δ_(k+2) > and<Δ_(k+3) > lie on one straight line.

The absolute values of the vectors <D_(k+1) > and <D_(k+2) > arereferred to as d_(k+1) and d_(k+2), respectively. The absolute values ofthe modifying vectors <Δ_(k+1) >, <Δ_(k+2) > and <Δ_(k+3) > correspondto the aforementioned shift amounts of δ_(k+1), δ_(k+2) and δ_(k+3),respectively.

The following relationship holds between the vector <D_(i) > (i=k+1,k+2) and the modifying vector <Δ_(j) > (j=k+1, k+2, k+3). ##EQU1##

Next, the position vectors for the positions P_(k+1), P_(k+2), P_(k+3),Q_(k+1), Q_(k+2) and Q_(k+3), with the origin O being the staring pointare represented as shown in the figure, and referred to as <OP_(k+1) >,<OP_(k+2) >, <OP_(k+3) >, <OQ_(k+1) >, <OQ_(k+2) > and <OQ_(k+3) >.Then, the following relationships hold.

    <D.sub.k+1 >=<OP.sub.k+2 >-<OP.sub.k+1 >                   (4)

    <D.sub.k+2 >=<OP.sub.k+3 >-<OP.sub.k+2 >                   (5)

    <OQ.sub.k+1 >=<OP.sub.k+1 >+<Δ.sub.k+1 >             (6)

    <OQ.sub.k+2 >=<OP.sub.k+2 >+<Δ.sub.k+2 >             (7)

    <OQ.sub.k+3 >=<OP.sub.k+3 >+<Δ.sub.k+3 >             (8)

Substituting the equations (1) to (3) into the right sides of equations(6) to (8), respectively, give ##EQU2##

Here, the position vectors <OP_(k+1) >, <OP_(k+2) > and <OP_(k+3) > havealready been taught. In other words, these position vectors are normallythe information already stored in the memory of the robot controller inthe form of position data on the coordinate system Σ (XYZ components).

The absolute values d_(k+1) and d_(k+2) of the vectors <D_(k+1) > and<D_(k+2) > are determined by calculating the distance between thealready taught positions P_(k+1) and P_(k+2) and the distance betweenthe positions P_(k+2) and P_(k+3). This is because the distance d_(i)between two points P_(i) (X_(i), Y_(i), Z_(i)) and P_(i+1) (X_(i+1),Y_(i+1), Z_(i+1)) defined by the coordinate system Σ can be determinedby the following equation:

    d.sub.i =[(X.sub.i+1 -X.sub.i).sup.2 +(Y.sub.i+1 -Y.sub.i).sup.2 +(Z.sub.i+1 -Z.sub.i).sup.2 ].sup.1/2                     (12)

The shift quantity δ_(j) (j=k+1, k+2, k+3) on the linear interval formodifying the taught position is a value directly relating to themodification amount of, for example, the size or arrangement interval ofthe workpiece, and is a scalar quantity which the operator can definewithout considering the coordinate system Σ.

The above equation means that, assuming that points P_(k+1), P_(k+2) andP_(k+3) are located on one straight line in space, when a modificationis made so that the point P_(k+2) is shifted by δ_(k+2) toward the pointP_(k+3) along the straight line, the position of the modified pointQ_(k+2) is determined as the position vector <OQ_(k+2) > by thefollowing equation. That is, from Eq.(10),

    <OQ.sub.k+2 >=<OP.sub.k+2 >+(δ.sub.k+2 /d.sub.k+2)<D.sub.k+2 >

where <D_(k+2) > can be determined from Eq.(5) as

    <D.sub.k+2 >=<OP.sub.k+3 >-<OP.sub.k+2 >,

and

ti d_(k+2) =|<D_(k+2) >|

In effect, the position vector of the taught point after modificationcan be obtained from the information of the position vector <OP_(k+2) >of originally taught point to be modified, the shift amount formodification, and the position vector <OP_(k+3) > of another taughtpoint located on the same straight line.

Therefore, for example, if a program for executing calculationscorresponding to Eqs. (9) to (11) using the above equations (4), (5) and(12) is stored in the memory of the robot controller, the operator canperform the work for making the desired modification of taught positionby merely inputting the shift amount δ_(k+1), δ_(k+2) and δ_(k+3) to therobot controller to command the execution of calculation, and by storingthe calculation result into the memory as the renewed value of thetaught position data.

In the above description, a plurality of continuous intervals (intervalsof P_(k+1) →P_(k+2) ; P_(k+2) →P_(k+3) ; Q_(k+1) →Q_(k+2) ; and Q_(k+2)→Q_(k+3)) for each path of taught positions before and aftermodification have been assumed, but this condition is not a prerequisitefor the present invention.

As easily inferred from the above description, the position teachingmethod of the present invention can be applied to the process formodifying any taught position in which at least one vector that isparallel to each modification vector <Δm> (m may be discontinuous orcontinuous positive integer) and directed from a taught position P_(s)to P_(s+1) (s is 0 or any positive integer) is found.

FIG. 2 is a block diagram of the principal part of the robot controllerused in carrying out the present invention.

In the diagram, the robot controller 10 has a central processing unit(hereinafter called CPU) 1. The CPU 1 includes memory 2 consisting ofROM, memory 3 consisting of RAM, nonvolatile memory 4 consisting of MOSetc., a manual data input device 5 with a CRT display (CRT/MDI), ateaching panel 6, and an interpolator etc., and a robot axis controlsection 7 for controlling each axis of a robot is connected to the CPU 1via a bus 9. The robot axis control section 7 is also connected to therobot body 20 via a servo circuit

The ROM 2 stores various programs which are executed by the CPU 1 tocontrol the robot 20 and the robot controller 10 itself. The RAM 3 isused for temporary storage or calculation of data. The nonvolatilememory 4 stores the taught data inputted from CRT/MDI 5, teaching panel6 or nonillustrated external devices. That is, the memory 4 storesprograms and set values of various parameters as well as taught positiondata.

The above-described constitution is basically the same as that of theconventional robot controller. However, it differs from the conventionalrobot controller in that the memory 2 consisting of ROM stores a programfor calculating the modified taught position data (XYZ components ofQ_(k+1)) on the basis of the taught position modifying data (that is,shift amount δ_(k+1) etc.) inputted through teaching panel 6 and CRT/MDI5 by an operator and further the above-mentioned Equations (4), (5),(9), (10), (11) and (12), to modify the address position data in RAM 3which stores corresponding taught position data before modification.

The present robot controller also differs from the conventional robotcontroller in that a necessary program is stored in the memory 2consisting of ROM so that a picture of taught position modifying mode asis shown in FIG. 4 can be displayed on a display of the CRT/MDI 5 or theteaching panel 6 by the command of the operator, by which the operatorcan perform the modification work in an interactive mode.

On the screen of taught position modifying mode shown in FIG. 4, theoperator specifies and inputs the number s of the taught position to bemodified, the modification amount δ_(s) (the shift amount of the taughtposition to be modified on the linear interval), the taught positionnumbers i and j necessary for specifying the direction of modificationvector (the numbers of two taught positions for identifying the abovelinear interval), date, and the operator code number using the keyboardof the CRT/MDI or the teaching panel 6. The input of the modificationamount δ_(s) involves + or - symbol. That is, if the direction ofmodification is the same as the direction from position Pi to positionP_(j) which specify each linear interval, the plus input line isselected; however, if the modification direction is reverse, the minusinput line is selected.

The modification program, which is stored in the memory 2 consisting ofROM, is prepared so that the position data of the block number (sequencenumber) corresponding to the taught program can be modified on the basisof the aforementioned specified content.

An example of the procedure for performing taught position modificationby the method of the present invention using the robot controller 10with the above-described constitution and function will be described forthe case where work on two types of workpieces having differentdimensions as shown in FIG. 3 is assumed with reference to the displayof taught position modifying mode shown in FIG. 4 and the flowchartshown in FIG. 5.

FIG. 3(a) schematically shows three cylindrical workpieces Wa having abottom radius R and a thickness (length) d and arranged linearly withone point G on the coordinate system Σ being the reference. The programof the work (e.g., welding or marking) to be done for these threeworkpieces is supposed to have been taught to the robot, and threepoints P_(k+1), P_(k+2) and P_(k+3) are also supposed to have beentaught as the positions where the robot should gain access to theseworkpieces Wa. Since these three taught points P_(k+1), P_(k+2) andP_(k+3) are considered to be positionally equivalent, equivalent withrespect to each workpiece Wa, these points are arranged on one straightline at common intervals d. The vector directed from the taught pointP_(k+1) to P_(k+2) is equal to that directed from P_(k+2) to P_(k+3).This vector is denoted by <D>. The absolute value of the vector <D> isthe aforementioned interval d.

If the robot is operated according to the aforementioned taught program,the robot starts its operation from the initial position, gains accessto the workpiece Wa, and moves sequentially passing P_(k+1), P_(k+2) andP_(k+3) (and each of interpolation points) to carry out a predeterminedwork.

FIG. 3(b) schematically shows three workpieces Wb, in place of Wa shownin FIG. 3(a), having a bottom radius R, which is equal to the radius ofWa, and a thickness (length) d+δ, and arranged linearly with one point Gon the coordinate system Σ being the reference as with the case shown inFIG. 3(a).

Considering the case of performing the same work on the workpieces shownin FIG. 3(b) by using the robot to which the program as taught in thecase of FIG. 3(a) is incorporated, the taught points P_(k+1), P_(k+2)and P_(k+3) must be modified into taught points Q_(k+1), Q_(k+2) andQ_(k+3), respectively.

When the vectors representing the position change (displacement) fromthe taught point P_(k+1) to the modified taught point Q_(k+1), from thetaught point P_(k+2) to the modified taught point Q_(k+2), from thetaught point P_(k+2) to the modified taught point Q_(k+2), and from thetaught point P_(k+3) to the modified taught point Q_(k+3) are taken as<Δ_(k+1) >, <Δ_(k+2) > and <Δ_(k+3) >, respectively, the magnitudes ofthe modification vectors are δ, 2δ and 3δ, respectively, as shown inFIG. 3(b).

Therefore, if taught position modification required in this case isexplained with reference to FIG. 1, then either of vector <D_(k+1) > and<D_(k+2) > should be considered to be <D>, either of intervals d_(k+1),d_(k+2) and d_(k+3) be considered to be d, and further, shift amountsδ_(k+1), δ_(k+2) and δ_(k+3) be considered to be δ, 2δ and 3δrespectively.

Therefore, to determine the position data of the modified taught pointsQ_(k+1), Q_(k+2) and Q_(k+3), calculation may be made using theaforementioned equations (9), (10), and (11) under the above-describedconditions.

Specifically, Eqs. (1) to (3) are expressed as follows:

    <Δ.sub.k+1 >=(δ/d)<D>                          (13)

    <Δ.sub.k+2 >=(2δ/d)<D>                         (14)

    <Δ.sub.k+3 >=(3δ/d)<D>                         (15)

Equations (4) and (5) are reduced to the following equation (16):##EQU3##

Using the above equations (13) to (15), equations (9) to (11) arereduced to the following equations. ##EQU4##

Here, the XYZ components of the position vectors <OP_(k+1) >,<OP_(k+2) > and <OP_(k+3) > are nothing but the position data alreadytaught. Therefore, they can be read from the nonvolatile memory 4. Thevalue of d can be determined by executing the calculation equivalent tothat by the aforementioned equation (12) by means of the modificationprogram stored in the memory 2 consisting of ROM, using the XYZcomponent data of <OP_(k+1) >, <OP_(k+2) > and <OP_(k+3) > read from thenonvolatile memory 4. Since the value of d is the thickness of theworkpiece Wa, the measured value thereof can be stored in advance in thenonvolatile memory 4 as a set parameter.

As easily seen from the above description, in order to perform themodification work shown in FIG. 3 using a manual data input device(CRT/MDI) 5 or a teaching panel 6 having a display for giving theinformation as is shown in FIG. 4, in the field [MODIFICATION 1] on thescreen, k+1 is inputted to i, k+2 is inputted to j, k+1 is inputted tos, and δ is inputted to δ_(s) (=δ_(k+1)); in the field of [MODIFICATION2], k+1 is inputted to i, k+2 is inputted to j, k+2 is inputted to s,and 2δ is inputted to δ_(s) (=δ_(k+2)); in the field of [MODIFICATION3], k+1 is inputted to i, k+2 is inputted to j, k+3 is inputted to s,and 3δ is inputted to δ_(s) (=δ_(k+3)).

A flowchart of FIG. 5 shows an example of processing for executingtaught position modification using the manual data input device(CRT/MDI) 5 or the taught panel 6.

First, the power for the robot controller 10 is turned on to allow thescreen of taught position modification mode shown in FIG. 4 to be givenon the display of the CRT/MDI 5 or the teaching panel 6 (Step S1). Then,the operator manually inputs the values of i, j, s and δ_(s) in thefields of [MODIFICATION 1], [MODIFICATION 2] and [MODIFICATION 3] whilewatching the screen (Step S2).

As an example, for three points P₅₁, P₅₂ and P₅₃ forming linearintervals, it is assumed that point P₅₁ is shifted 50 mm (δ=+50) towardpoint P₅₂ in the direction of the straight line, point P₅₂ is shifted 20mm (δ=+20) toward point P₅₃, and point P₅₃ is shifted 30 mm (δ=+30) inthe direction opposite to the direction of the shift of the point P₅₂.In this case, in the field of [MODIFICATION 1] on the screen, to definethe linear interval by a straight line connecting point P₅₁ and pointP₅₂ (needless to say, the linear interval may be defined by a straightline connecting point P₅₁ and point P₅₃), 51 is inputted to i, and 52 toj, and then 51 to s to specify point P_(s) to be modified and +50 to δto specify the shift quantity, by the operator. Likewise in[MODIFICATION 2], 51 is inputted to i, and 52 is inputted to j, by theoperator (it is unnecessary to redefine the linear interval in anotherform--for example, with P₅₂ and P₅₃). Further, the operator inputs 52 tos, and +20 to δ_(s). Further, in the field of [MODIFICATION 3], 51 isinputted to i, 52 to j, 53 to s, and +30 to δ_(s), by the operator.

After checking the inputted data on the screen, the operator answers thequestion given at the lowermost part of the screen by inputting Yindicating the completion of modification through the keyboard. Then,the CPU 1 starts modification processing.

First, the CPU 1 resets the modification number index α to 1 (Step S3),reads the taught position data corresponding to i, j and s specified in[MODIFICATION 1] from the program already taught, and temporarily storesthe taught position data together with the address number into the RAM 3(Step S4).

Then, the CPU makes calculation of

    <D.sub.ij >=<D.sub.j >-<D.sub.i >

based on Eq. (4) or (5), and calculation of

    d.sub.ij =|<D.sub.ij >|

based on Eq. (12) (Step S5).

Then, calculation of

    <OQ.sub.s >=<OP.sub.s >+(δ.sub.s /d.sub.ij)<D.sub.ij >

is made corresponding to Eqs. (9), (10), and (11) to determine theposition vector <OQ_(s) > of the modified position Q_(s) (Step S6).

Thus, as soon as the modified position Q_(s) of the point inputted in[MODIFICATION 1] is determined, the data of address number P_(s) whichthe nonvolatile memory 4 stores is modified to Q_(s) (Step S7). Afterthe processing of [MODIFICATION 1] ends in this manner, 1 is added tothe modification number index α (Step S8). If [MODIFICATION 2] exists,the procedure returns to Step S4 (Step S9), and the processings in StepsS4 to S7 are executed again for [MODIFICATION 2]. In this embodiment,since the modification for the data displayed on one screen ends whenα=3, three cycles of processings in total in Steps S4 to S7 are repeatedto complete the taught position modification for one display. Afterthat, α becomes 4 in Step S8, and the processing proceeds to Step S10.

In Step S10, the modification screen mode on the CRT/MDI 5 or theteaching panel 6 is reset to terminate the display of the data of i, j,s and δ_(s). If there are any taught position to be modified other thanthose indicated in the fields of [MODIFICATION 1] to [MODIFICATION 3],the operator calls out the modification screen mode again (Step S11,Step S1) to perform the modification work in the same manner as thepreceding cycle.

In the case shown in FIG. 4, the number of teaching positions to bemodified is three in all, and there is no other taught positions to bemodified, and so it is judged that the answer is No, and all ofmodification work ends.

Although the modification data has been inputted manually in the abovedescription, the modification of taught positions can also be made insuch a manner that the operator prepares modification data in anoff-line mode and loads the data once into the nonvolatile memory 4 viaa nonillustrated input device together with the data of the addressnumber etc. of the data of taught position to be modified, and then therobot controller reads the data by the command of the operator toperform collective modification processing of the taught positions.

According to the position teaching method of the present invention, theoperator can be saved from cumbersome work such as converting theposition modification data by identifying the coordinate system inmaking the kind of taught position modification requiring only thechange of the taught position without changing the direction between theteaching positions in the program already taught. That is to say, theoperator needs to input only the value which can easily be understood asthe modification amount at the actual work level (scalar quantity δ_(j))into the robot controller etc. Therefore, very efficient work can beperformed by utilizing the program which has already been taught.

In particular it is a notable advantage of the present positionmodification method that, even if there are variations in the size ofworkpiece or the number of arranged workpieces, the program alreadytaught can be used effectively by providing it with only the leastnecessary modification such as specifying the modification amount(δ_(j)) and the position to be modified in the program already taughtusing a block number (sequence number) etc.

We claim:
 1. A robot teaching position method for modifying an originalposition of one of a plurality of taught points arranged on a straightline to a modified position moved a distance along said straight linefrom said original position, comprising the steps of:providing firstposition information of said original position of said one taught point;providing said distance of movement along said straight line from saidoriginal position to said modified position; providing second positioninformation of a second and a third of said plurality of taught pointsarranged on said straight line; determining said modified position basedon said first position information, said distance, and said secondposition information obtained at said providing steps; and performing arobot operation based on said modified position obtained at saiddetermining step.
 2. A robot teaching position method for modifying anoriginal position of one of a plurality of taught points arranged on astraight line to a modified position moved a distance along saidstraight line from said original position, comprising the stepsof:determining a first position vector of said original position of saidone taught point; providing said distance of movement along saidstraight line from said original position to said modified position;determining a second position vector and a third position vector of asecond and a third of said plurality of taught points arranged on saidstraight line, respectively; determining a modified position vector ofsaid modified position based on said determined first position vector,said provided distance, and said determined second and third positionvectors; and performing a robot operation based on said determinedmodified position vector.
 3. A robot teaching position method accordingto claim 2, wherein said step of determining said modified positionvector includes the step of determining said modified position vectorfrom the following equations:

    <OQ.sub.s >=<OP.sub.s >+(δ.sub.s /d.sub.ij)<D.sub.ij >

    <D.sub.ij >=<D.sub.j >-<D.sub.i >

    d.sub.ij =|<D.sub.ij >|

wherein <OP_(s) > represents said first position vector, δ_(s)represents said distance, <D_(j) > represents said second positionvector, <D_(i) > represents said third position vector, and <OQ_(s) >represents said modified position vector.